function linear_algebra_review()
% LINEAR_ALGEBRA_REVIEW 线性代数基础知识回顾
% 
% 本函数演示线性代数的基本概念和操作

fprintf('=== 线性代数基础回顾 ===\n\n');

%% 1. 矩阵基本操作
fprintf('1. 矩阵基本操作\n');
A = [1, 2, 3; 4, 5, 6; 7, 8, 9];
B = [9, 8, 7; 6, 5, 4; 3, 2, 1];

fprintf('矩阵A:\n');
disp(A);
fprintf('矩阵B:\n');
disp(B);

% 矩阵加法
C = A + B;
fprintf('A + B =\n');
disp(C);

% 矩阵乘法
D = A * B;
fprintf('A * B =\n');
disp(D);

% 矩阵转置
At = A';
fprintf('A的转置:\n');
disp(At);

%% 2. 向量操作
fprintf('\n2. 向量操作\n');
x = [1; 2; 3];
y = [4; 5; 6];

fprintf('向量x: [%g, %g, %g]^T\n', x);
fprintf('向量y: [%g, %g, %g]^T\n', y);

% 内积
dot_product = x' * y;
fprintf('内积 x^T * y = %g\n', dot_product);

% 向量范数
norm_x = norm(x);
norm_y = norm(y, 2);  % 2-范数
norm_inf = norm(x, inf);  % 无穷范数
fprintf('||x||_2 = %g\n', norm_x);
fprintf('||x||_inf = %g\n', norm_inf);

%% 3. 线性方程组
fprintf('\n3. 线性方程组求解\n');
A_sys = [2, 1, -1; -3, -1, 2; -2, 1, 2];
b = [8; -11; -3];

fprintf('求解线性方程组 Ax = b\n');
fprintf('A =\n');
disp(A_sys);
fprintf('b = [%g; %g; %g]\n', b);

% 使用MATLAB内置求解器
x_sol = A_sys \ b;
fprintf('解 x = [%g; %g; %g]\n', x_sol);

% 验证解
residual = A_sys * x_sol - b;
fprintf('残差 ||Ax - b|| = %e\n', norm(residual));

%% 4. 矩阵的秩和行列式
fprintf('\n4. 矩阵的秩和行列式\n');
rank_A = rank(A_sys);
det_A = det(A_sys);
fprintf('矩阵A的秩: %d\n', rank_A);
fprintf('矩阵A的行列式: %g\n', det_A);

%% 5. 特征值和特征向量预览
fprintf('\n5. 特征值和特征向量预览\n');
[V, D] = eig(A_sys);
eigenvalues = diag(D);
fprintf('特征值:\n');
for i = 1:length(eigenvalues)
    fprintf('λ_%d = %g + %gi\n', i, real(eigenvalues(i)), imag(eigenvalues(i)));
end

fprintf('\n特征向量矩阵V:\n');
disp(V);

end